<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PowerVR SDK</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<table width="100%">
  <tr>
    <td width="33%">
      <p align="left">&nbsp;<a href="http://www.imgtec.com"><img border="0" src="IMGLogo.jpg" width="200" height="30"></a></p>
    </td>
    <td width="33%">
      <p align="center"><font color="#808080" face="Arial" size="2">PowerVR Software Development Kit</a></font></p>
    </td>
    <td width="34%">
      <p align="right"><a href="http://www.powervr.com"><img border="0" src="PVRlogo.jpg" width="200" height="27"></a></p>
    </td>
  </tr>
</table>
<hr>
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>PVRTTrans.h File Reference</h1>
<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="PVRTTrans_8h__dep__incl.png" border="0" usemap="#PVRTTrans.hdep_map" alt="Included by dependency graph"></center>
<map name="PVRTTrans.hdep_map">
<area href="OGLES2Tools_8h.html" shape="rect" coords="7,7,124,34" alt="">
</map>

<p>
<a href="PVRTTrans_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX_TAG</a></td></tr>

<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX_TAG</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a0">PVRTBOUNDINGBOX</a></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX_TAG</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a1">LPPVRTBOUNDINGBOX</a></td></tr>

<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a2">PVRTBoundingBoxCompute</a> (<a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX</a> *const pBoundingBox, const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pV, const int nNumberOfVertices)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a3">PVRTBoundingBoxComputeInterleaved</a> (<a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX</a> *const pBoundingBox, const unsigned char *const pV, const int nNumberOfVertices, const int i32Offset, const int i32Stride)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a4">PVRTBoundingBoxIsVisible</a> (const <a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX</a> *const pBoundingBox, const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const pMatrix, bool *const pNeedsZClipping)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a5">PVRTTransformVec3Array</a> (<a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const pOut, const int nOutStride, const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pV, const int nInStride, const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const pMatrix, const int nNumberOfVertices)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a6">PVRTTransformArray</a> (<a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pTransformedVertex, const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pV, const int nNumberOfVertices, const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const pMatrix, const VERTTYPE fW=f2vt(1.0f))</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a7">PVRTTransformArrayBack</a> (<a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pTransformedVertex, const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pVertex, const int nNumberOfVertices, const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const pMatrix)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a8">PVRTTransformBack</a> (<a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const pOut, const <a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const pV, const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const pM)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTTrans_8h.html#a9">PVRTTransform</a> (<a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const pOut, const <a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const pV, const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const pM)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="a1" doxytag="PVRTTrans.h::LPPVRTBOUNDINGBOX" ></a><p>
<br><br><h3>LPPVRTBOUNDINGBOX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef struct <a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX_TAG</a> * <a class="el" href="structPVRTBOUNDINGBOX__TAG.html">LPPVRTBOUNDINGBOX</a>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="a0" doxytag="PVRTTrans.h::PVRTBOUNDINGBOX" ></a><p>
<br><br><h3>PVRTBOUNDINGBOX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef struct <a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX_TAG</a>  <a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX</a>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="a2" doxytag="PVRTTrans.h::PVRTBoundingBoxCompute" ></a><p>
<br><br><h3>PVRTBoundingBoxCompute</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTBoundingBoxCompute </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pBoundingBox</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nNumberOfVertices</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pBoundingBox</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pV</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>nNumberOfVertices</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Calculate the eight vertices that surround an object. This "bounding box" is used later to determine whether the object is visible or not. This function should only be called once to determine the object's bounding box. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a3" doxytag="PVRTTrans.h::PVRTBoundingBoxComputeInterleaved" ></a><p>
<br><br><h3>PVRTBoundingBoxComputeInterleaved</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTBoundingBoxComputeInterleaved </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pBoundingBox</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned char *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nNumberOfVertices</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>i32Offset</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>i32Stride</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pBoundingBox</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pV</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>nNumberOfVertices</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>i32Offset</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>i32Stride</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Calculate the eight vertices that surround an object. This "bounding box" is used later to determine whether the object is visible or not. This function should only be called once to determine the object's bounding box. Takes interleaved data using the first vertex's offset and the stride to the next vertex thereafter </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a4" doxytag="PVRTTrans.h::PVRTBoundingBoxIsVisible" ></a><p>
<br><br><h3>PVRTBoundingBoxIsVisible</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool PVRTBoundingBoxIsVisible </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structPVRTBOUNDINGBOX__TAG.html">PVRTBOUNDINGBOX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pBoundingBox</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pMatrix</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>bool *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pNeedsZClipping</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pNeedsZClipping</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pBoundingBox</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pMatrix</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if the object is visible, FALSE if not. </dd></dl>
<dl compact><dt><b>Description:</b></dt><dd>Determine if a bounding box is "visible" or not along the Z axis. If the function returns TRUE, the object is visible and should be displayed (check bNeedsZClipping to know if Z Clipping needs to be done). If the function returns FALSE, the object is not visible and thus does not require to be displayed. bNeedsZClipping indicates whether the object needs Z Clipping (i.e. the object is partially visible).<ul>
<li>*pBoundingBox is a pointer to the bounding box structure.</li><li>*pMatrix is the World, View &amp; Projection matrices combined.</li><li>*bNeedsZClipping is TRUE if Z clipping is required. </li></ul>
</dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a9" doxytag="PVRTTrans.h::PVRTTransform" ></a><p>
<br><br><h3>PVRTTransform</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTTransform </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pM</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pOut</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pV</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pM</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Transform vertex pV by pMatrix and store in pOut. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a6" doxytag="PVRTTrans.h::PVRTTransformArray" ></a><p>
<br><br><h3>PVRTTransformArray</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTTransformArray </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pTransformedVertex</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nNumberOfVertices</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pMatrix</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const VERTTYPE&nbsp;</td>
          <td class="mdname" nowrap> <em>fW</em> = f2vt(1.0f)</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pTransformedVertex</em>&nbsp;</td><td>Destination for transformed vectors </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pV</em>&nbsp;</td><td>Input vector array </td></tr>
    <tr><td valign=top><em>nNumberOfVertices</em>&nbsp;</td><td>Number of vectors to transform </td></tr>
    <tr><td valign=top><em>pMatrix</em>&nbsp;</td><td>Matrix to transform the vectors </td></tr>
    <tr><td valign=top><em>fW</em>&nbsp;</td><td>W coordinate of input vector (e.g. use 1 for position, 0 for normal) </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Transform all vertices in pVertex by pMatrix and store them in pTransformedVertex<ul>
<li>pTransformedVertex is the pointer that will receive transformed vertices.</li><li>pVertex is the pointer to untransformed object vertices.</li><li>nNumberOfVertices is the number of vertices of the object.</li><li>pMatrix is the matrix used to transform the object. </li></ul>
</dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a7" doxytag="PVRTTrans.h::PVRTTransformArrayBack" ></a><p>
<br><br><h3>PVRTTransformArrayBack</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTTransformArrayBack </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pTransformedVertex</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pVertex</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nNumberOfVertices</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pMatrix</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pTransformedVertex</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pVertex</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>nNumberOfVertices</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pMatrix</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Transform all vertices in pVertex by the inverse of pMatrix and store them in pTransformedVertex.<ul>
<li>pTransformedVertex is the pointer that will receive transformed vertices.</li><li>pVertex is the pointer to untransformed object vertices.</li><li>nNumberOfVertices is the number of vertices of the object.</li><li>pMatrix is the matrix used to transform the object. </li></ul>
</dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a8" doxytag="PVRTTrans.h::PVRTTransformBack" ></a><p>
<br><br><h3>PVRTTransformBack</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTTransformBack </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pM</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pOut</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pV</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pM</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Transform vertex pV by the inverse of pMatrix and store in pOut. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a5" doxytag="PVRTTrans.h::PVRTTransformVec3Array" ></a><p>
<br><br><h3>PVRTTransformVec3Array</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTTransformVec3Array </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nOutStride</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nInStride</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classPVRTMATRIXf.html">PVRTMATRIX</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pMatrix</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nNumberOfVertices</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
PVRTTransformVec3Array <dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pOut</em>&nbsp;</td><td>Destination for transformed vectors </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>nOutStride</em>&nbsp;</td><td>Stride between vectors in pOut array </td></tr>
    <tr><td valign=top><em>pV</em>&nbsp;</td><td>Input vector array </td></tr>
    <tr><td valign=top><em>nInStride</em>&nbsp;</td><td>Stride between vectors in pV array </td></tr>
    <tr><td valign=top><em>pMatrix</em>&nbsp;</td><td>Matrix to transform the vectors </td></tr>
    <tr><td valign=top><em>nNumberOfVertices</em>&nbsp;</td><td>Number of vectors to transform </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Transform all vertices [X Y Z 1] in pV by pMatrix and store them in pOut. </dd></dl>
    </td>
  </tr>
</table>
<br>
<br>
<P align=left><FONT size=2><STRONG><A 
   href="http://www.imgtec.com/powervr/insider/legal/index.asp">Copyright</A> � 
   1999-2008, Imagination Technologies Ltd.</STRONG></FONT></P>
<hr>
<address style="align: left;"><small><FONT color=f0f>
Generated by <a href="http://www.doxygen.org/index.html">DOXYGEN</a> 1.3.6</small></address>
</body>
</html>
